package day240417.work;

public class VarargsDetail {
    public static void main(String[] args){
        demo1();
        //虽然int[]和int...本质是一样的，在其他地方使用还是有差异的，int...可以不传参数
        demo2(1,2,3,5,8);
    }
    public static void demo1(int a) {}
//    public static void demo1(int[] is) {}
    //int...的本质，或者说JVM的底层就是当作数组来处理
    //跟上一个方法签名，重名了，所以会报错
    public static void demo1(int... is) {}
    public static void demo2(int type, int c, int... is) {}
//    public static void demo3(int... is, int type, int c) {}
    //新知识：可变长度参数，必须是出现在参数列表的最后一个位置
    //如同下面这个
    public static void demo4(String type, char c, int... is) {}
    public static void demo5( String type, char c,int... is) {}
    //不管你类型怎么变，可变参数必须出现在列表的最后一个位置
//    public static void demo6(int... is1, int... is2) {}
    //这个可以用反证法，假设有两个可形变参数，那第一个参数肯定无法满足可形变参数的规则：

}
